# SPDX-License-Identifier: GPL-2.0
config UNICORE32
	def_bool y
	select ARCH_HAS_DEVMEM_IS_ALLOWED
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
	select HAVE_MEMBLOCK
	select HAVE_GENERIC_DMA_COHERENT
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_BZIP2
	select GENERIC_ATOMIC64
	select HAVE_KERNEL_LZO
	select HAVE_KERNEL_LZMA
	select VIRT_TO_BUS
	select ARCH_HAVE_CUSTOM_GPIO_H
	select GENERIC_FIND_FIRST_BIT
	select GENERIC_IRQ_PROBE
	select GENERIC_IRQ_SHOW
	select ARCH_WANT_FRAME_POINTERS
	select GENERIC_IOMAP
	select MODULES_USE_ELF_REL
	select NEED_DMA_MAP_STATE
	select SWIOTLB
	help
	  UniCore-32 is 32-bit Instruction Set Architecture,
	  including a series of low-power-consumption RISC chip
	  designs licensed by PKUnity Ltd.
	  Please see web page at <http://www.pkunity.com/>.

config GENERIC_CSUM
	def_bool y

config NO_IOPORT_MAP
	bool

config STACKTRACE_SUPPORT
	def_bool y

config LOCKDEP_SUPPORT
	def_bool y

config RWSEM_GENERIC_SPINLOCK
	def_bool y

config RWSEM_XCHGADD_ALGORITHM
	bool

config ARCH_HAS_ILOG2_U32
	bool

config ARCH_HAS_ILOG2_U64
	bool

config GENERIC_HWEIGHT
	def_bool y

config GENERIC_CALIBRATE_DELAY
	def_bool y

config ARCH_MAY_HAVE_PC_FDC
	bool

config ZONE_DMA
	def_bool y

menu "System Type"

config MMU
	def_bool y

config ARCH_FPGA
	bool

config ARCH_PUV3
	def_bool y
	select CPU_UCV2
	select GENERIC_CLOCKEVENTS
	select HAVE_CLK
	select GPIOLIB

# CONFIGs for ARCH_PUV3

if ARCH_PUV3

choice
	prompt "Board Selection"
	default PUV3_DB0913

config PUV3_FPGA_DLX200
	select ARCH_FPGA
	bool "FPGA board"

config PUV3_DB0913
	bool "DEBUG board (0913)"

config PUV3_NB0916
	bool "NetBook board (0916)"
	select PWM
	select PWM_PUV3

config PUV3_SMW0919
	bool "Security Mini-Workstation board (0919)"

endchoice

config PUV3_PM
	def_bool y if !ARCH_FPGA

endif

source "arch/unicore32/mm/Kconfig"

comment "Floating point support"

config UNICORE_FPU_F64
	def_bool y if !ARCH_FPGA

endmenu

menu "Bus support"

config PCI
	bool "PCI Support"
	help
	  Find out whether you have a PCI motherboard. PCI is the name of a
	  bus system, i.e. the way the CPU talks to the other stuff inside
	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
	  VESA. If you have PCI, say Y, otherwise N.

source "drivers/pci/Kconfig"

source "drivers/pcmcia/Kconfig"

endmenu

menu "Kernel Features"

source "kernel/Kconfig.hz"

config LEDS
	def_bool y
	depends on GPIOLIB

config ALIGNMENT_TRAP
	def_bool y
	help
	  Unicore processors can not fetch/store information which is not
	  naturally aligned on the bus, i.e., a 4 byte fetch must start at an
	  address divisible by 4. On 32-bit Unicore processors, these non-aligned
	  fetch/store instructions will be emulated in software if you say
	  here, which has a severe performance impact. This is necessary for
	  correct operation of some network protocols. With an IP-only
	  configuration it is safe to say N, otherwise say Y.

endmenu

menu "Boot options"

config CMDLINE
	string "Default kernel command string"
	default ""

config CMDLINE_FORCE
	bool "Always use the default kernel command string"
	depends on CMDLINE != ""
	help
	  Always use the default kernel command string, even if the boot
	  loader passes other arguments to the kernel.
	  This is useful if you cannot or don't want to change the
	  command-line options your boot loader passes to the kernel.

	  If unsure, say N.

endmenu

menu "Power management options"

source "kernel/power/Kconfig"

source "drivers/cpufreq/Kconfig"

config ARCH_SUSPEND_POSSIBLE
	def_bool y if !ARCH_FPGA

config ARCH_HIBERNATION_POSSIBLE
	def_bool y if !ARCH_FPGA

endmenu

if ARCH_PUV3

config PUV3_GPIO
	bool
	depends on !ARCH_FPGA
	select GPIO_SYSFS
	default y

if PUV3_NB0916

menu "PKUnity NetBook-0916 Features"

config I2C_BATTERY_BQ27200
	tristate "I2C Battery BQ27200 Support"
	select I2C_PUV3
	select POWER_SUPPLY
	select BATTERY_BQ27XXX

config I2C_EEPROM_AT24
	tristate "I2C EEPROMs AT24 support"
	select I2C_PUV3
	select EEPROM_AT24

config LCD_BACKLIGHT
	tristate "LCD Backlight support"
	select BACKLIGHT_LCD_SUPPORT
	select BACKLIGHT_PWM

endmenu

endif

endif
